<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>基础的get请求</title>
</head>

<body>
  <h1>基础的get请求</h1>
  <form id="form" action="" method="">
    <input id="ipt" type="text">
    <button id="btn">输入学生id 查询他的详细信息</button>
  </form>

  <script>
    const oBtn = document.getElementById('btn');
    const oIpt = document.getElementById('ipt');
    const oForm = document.getElementById('form');

    /* 
      表单提交事件的绑定方式:
        1.给按钮绑定点击事件
        2.给form元素绑定提交事件submit
        3.一般我们不用form的提交,所以需要在事件内阻止默认事件(1.e.preventDefault()  2.return false)
    
    
    */
    /* oBtn.onclick = function (e) {
      e.preventDefault();
      console.log(1);
    } */

    /* oForm.onsubmit = function (e) {
      // e.preventDefault()
      console.log(2);

      return false;
    } */


    oForm.onsubmit = function () {
      //1.实例化XMLHttpRequest 
      const xhr = new XMLHttpRequest();

      //2.打开路径
      //参数1:请求方式  参数2:请求地址  参数3:是否异步
      xhr.open("GET", "/user", true)

      //3.发送请求
      xhr.send();

      //4.监听事件
      xhr.onreadystatechange = function () {
        /* 
          请求状态码 readyState:
          0:初始化xhr  1:已经调用的open方法  2:已经调用了send正在发送  3:已经获取到部分数据 4:已经获取所有的数据
          响应状态码 status:
            2XX:代表响应成功
        */
        // console.log(xhr.readyState);

        //当请求状态码变为4  响应状态码是2XX 则代表请求和响应都成功,然后我们可以获取请求的信息
        if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status <= 299)) {
          //此时完全成功 可以去拿响应的数据  responseText
          console.log(xhr.responseText);
        }
      }

      return false;
    }
  </script>
</body>

</html>